#ifndef CUDA_GET_FLUX_MAP_H
#define CUDA_GET_FLUX_MAP_H

/*
    通过算法计算出的flux数据，生成fluxmap每个像素的颜色数据
*/
#ifdef _WIN32
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #undef WIN32_LEAN_AND_MEAN
#endif
#include <cuda_gl_interop.h>
#include <cuda_runtime.h>


namespace solar::cuda
{
    class CudaColorBar;
    class CudaGetFluxMap
    {
        public:
            CudaGetFluxMap() {}
            ~CudaGetFluxMap();

            void setColor();

            void calculateFluxMap(float* d_data, int2 resolution, float max_value,
                                  uchar4*& d_fluxmap_data);

        private:
            /*
                    这里是把colorbar的参数和方法用cuda又写了一遍，或许可以不用这么写-----cuda中的主机设备公用内存
                */
            // colorbar的一些参数
            CudaColorBar* colorbar_;
            int3* colors_;
            float* factors_;
            int color_num_;
    };
} // namespace solar::cuda

#endif
